package com.wjw.java.thread.locks;

/**
 * 什么时候会释放锁：
 * 1.当线程的同步代码块、同步方法执行完毕
 * 2.当线程的同步代码块、同步方法遇到break、return时
 * 3.当线程的同步代码块、同步方法出现了未处理的Error或Exception,导致异常结束
 * 4.当线程的同步代码块、同步方法中执行了线程对象的wait()方法,当前线程等待,并释放锁
 *
 * 什么时候不会释放锁:
 * 1.当线程的同步代码块、同步方法中执行了线程对象的sleep()、yield()不会释放锁
 * 2.线程执行同步代码块时,其他线程调用了该线程的suspend(),会将该线程挂起,不会释放锁
 * 注：应尽量避免使用suspend()和resume()来控制线程,方法不再推荐使用
 */
public class Release_Lock {

}
